package com.devops.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.devops.admin.model.DOSModel;
import com.devops.admin.model.DOSProjectGroup;
import com.devops.admin.model.DOSProjectGroupPo;
import com.devops.admin.model.TableResult;
import com.devops.admin.vo.DOSPageVo;

import java.util.List;

/**
 * @ClassNem DOSProjectGroupService
 * @Description TODO
 * @Author heyabo
 * @Date 2022/3/21 16:00
 * @Version 1.0
 **/
public interface DOSProjectGroupService extends IService<DOSProjectGroup> {

    /**
     * @return com.devops.admin.model.TableResult<com.devops.admin.model.DOSProjectGroup>
     * @Author heyabo
     * @Description 分页查询项目组
     * @Date 16:03 2022/3/21
     * @Param [groupPage]
     **/
    TableResult<DOSProjectGroup> getListPage(DOSModel modelPage, DOSPageVo pageVo);

    /**
     * @return java.lang.Boolean
     * @Author heyabo
     * @Description 根据id删除项目组
     * @Date 16:17 2022/3/21
     * @Param [projectGroupId]
     **/
    Boolean deleteProjectGroup(Integer projectGroupId);

    /**
     * @Author heyabo
     * @Description 根据项目组名称模糊查询
     * @Date 16:45 2022/3/21
     * @Param [projectGroup]
     * @return com.devops.admin.model.TableResult<com.devops.admin.model.DOSProjectGroup>
     **/
    TableResult<DOSProjectGroup> getProjectGroupByName(DOSProjectGroup projectGroup,DOSPageVo pageVo);

    /**
     * @return com.devops.admin.model.TableResult<com.devops.admin.model.DOSProjectGroup>
     * @Author heyabo
     * @Description 分页查询项目组
     * @Date 16:03 2022/3/21
     * @Param [groupPage]
     **/
    List<DOSProjectGroup> getListPage();

    /**
     * @Author heyabo
     * @Description 查询项目组和项目的
     * @Date 10:37 2022/7/22
     * @Param []
     * @return java.util.List<com.devops.admin.model.DOSProjectGroupPo>
     **/
    List<DOSProjectGroupPo> getCascade();

    /**
     * @Author heyabo
     * @Description 查询项目名称的相似度
     * @Date 17:28 2022/11/14
     * @Param [groupName]
     * @return java.lang.String
     **/
    List<String> getSimilarProjectGroupName(String groupName,Double similarityLimit);
}
